/*
 * Salas.h
 *
 *  Created on: 29/06/2011
 *      Author: facundo
 */

#ifndef SALAS_H_
#define SALAS_H_

#include "Conversacion.h"
#include "ColadeMensajes/TipoMensaje.h"
#include <string>
#include <sstream>
#include "log/lockinglog.h"
#define SALA_INICIAL 0


class Salas {
public:
	Salas(bool debug);
	virtual ~Salas();
	string listar();
	string listarUsuarios(int pidcliente);
	bool agregarSala(int id,string nombre);
	int quitarSala(int id);
	bool verificarSala(int id);
	int agregarClienteaSala(int idSala,int pidCliente,string nombre);
	int moverClientedeSala(int idSala_inicio,int idSala_fin,int pidCliente);
	Cliente* quitarClientedeSala(int idSala,int pidCliente);
	int mandarMensajeaSala(int pidClienteOrigen,Mi_Tipo_Mensaje Mensaje);
	int mandarMensajeaCliente(int pidCliente,Mi_Tipo_Mensaje Mensaje);
	int buscarSaladelCliente(int pidcliente);
	int quitarCliente(int pidcliente);
	int mandarHistorialdeMensajes(int pidcliente);
private:
	map <int,Conversacion*> mapaSalas;
	lockinglog* log;
	stringstream log1;
};

#endif /* SALAS_H_ */
